import java.util.ArrayList;
import java.util.List;
//杨辉三角
public class test {
    public List<List<Integer>> generate(int numRows) {
        //定义一个二维数组
        List<List<Integer>> ret = new ArrayList<>();

        //先把第一行写入
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);

        //从第二行开始写入
        for(int i =1;i<numRows;i++) {
            List<Integer> curlist = new ArrayList<>();
            //第一个元素写入
            curlist.add(1);
            //中间元素写入
            for(int j=1;j<i;j++) {
                //创建前一行的数组
                List<Integer> prelist = ret.get(i-1);
                //中间元素一一计算并写入
                int x = prelist.get(j-1)+prelist.get(j);
                curlist.add(x);
            }
            //最后一个元素写入
            curlist.add(1);
            //把当前一维数组写入二维数组对应行
            ret.add(curlist);
        }
        return ret;
    }
}
